home *** CD-ROM | disk | FTP | other *** search
- %%% Start-of-TeX-file mathtime.tex
- %%% ====================================================================
- %%% @TeX-file{
- %%% author = "Adam H. Lewenberg",
- %%% version = "1.30",
- %%% date = "08 April 1994",
- %%% filename = "mathtime.tex",
- %%% address = "Department of Mathematics
- %%% University of Illinois at Urbana-Champaign
- %%% Urbana, Illinois 61801
- %%% USA
- %%% Tel: (217) 333-3350",
- %%% checksum = "36707 978 4110 34084",
- %%% email = "adam@math.uiuc.edu",
- %%% codetable = "ISO/ASCII",
- %%% keywords = "MathTime PostScript TeXplorator's",
- %%% supported = "yes",
- %%% abstract = "These macros replace the Computer Modern
- %%% math fonts by the MathTime math fonts (from
- %%% the TeXplorators Corp.)",
- %%% docstring = "This file contains macros to define
- %%% text fonts and math fonts using PostScript
- %%% fonts for text and the MathTime fonts for
- %%% math. An example of how this is
- %%% done is given at the bottom of this file.
- %%% This file uses the mtmacs.tex set of macros
- %%% that come with the MathTime fonts. These
- %%% macros are compatible with:
- %%% PLAIN
- %%% AmSTeX (version 2.1 or later)
- %%% AmSTeX+AMSPPT.STY
- %%% LAmSTeX (version 2.0 or later)
- %%%
- %%% These macros are decidedly NOT compatible
- %%% with LaTeX or the NFSS (New Font
- %%% Selection Scheme).
- %%%
- %%% A sample style using these macros is given
- %%% in the file mttim10.tex (available
- %%% separately).
- %%%
- %%% Note that these macros are USELESS without
- %%% the MathTime fonts. These fonts are
- %%% available from the TeXplorators Corp
- %%% and are NOT freely-copyable (although
- %%% inexpensive).
- %%%
- %%% The checksum field above contains a CRC-16
- %%% checksum as the first value, followed by the
- %%% equivalent of the standard UNIX wc (word
- %%% count) utility output of lines, words, and
- %%% characters. This is produced by Robert
- %%% Solovay's checksum utility.",
- %%% dependencies = "mtmacs.tex MathTime-fonts"
- %%% }
- %%% ====================================================================
- %%% mathtime.tex version 1.30
- %%% Adam H. Lewenberg adam@math.uiuc.edu
- %%% Department of Mathematics, University of Illinois at Urbana-Champaign
- %%% -- Please report any bugs to the above address. --
- %%%
- %%% COPYRIGHT: This file copyright 1993, 1994 by Adam H. Lewenberg. For
- %%% restrictions on use see below.
- %%%
- %%% RESTRICTIONS: This file is freely copyable. If you want to change
- %%% something, change the filename from mathtime.tex to something else and
- %%% indicate any changes in the file itself, or else remove my name
- %%% from the file completely. However, you are allowed to remove all
- %%% lines beginning with "%% " (two percent characters followed by a
- %%% space).
- %%%
- %%% SUMMARY: A generic PostScript-text-fonts/MathTime-math-fonts
- %%% style. Note well that if a non-PostScript font is used for the text
- %%% faces, bad things will happen. For use, see the instructions
- %%% following the \endinput below. For information on mtmacs.tex, see the
- %%% mtmacs.tex documentation that comes with the MathTime fonts.
- %%%
- %%% The mathtime.tex macros can be used within a group safely.
- %%%
- %%% The MathTime fonts are available from the TeXplorator's Corporation
- %%% (address given below). Although the file mathtime.tex is freely
- %%% copyable, the MathTime fonts are not.
- %%%
- %%% The TeXplorators Corporation
- %%% 1572 West Gray, #377
- %%% Houston, TX 77019-4948 USA
- %%%
- %%% GLOBAL CONSTRUCTS:
- %%%
- %%% (none)
- %%%
- %%% COMPATIBLE WITH:
- %%% Plain
- %%% AmSTeX
- %%% AmSTeX + AMSPPT.STY
- %%% LAmSTeX
- %%%
- %%% (See COMPATIBILITY NOTES below!!)
- %%%
- %%% THINGS TO DO:
- %%%
- %%% 1. Change \MathRoman and other mtmacs.tex commands to work in
- %%% eight point.
- %%%
- %%% USE: The file mathtime.tex by itself does not change fonts, rather,
- %%% it sets up macros to change fonts. For an example and instructions
- %%% on the font-changing macros, see the bottom of this file (search
- %%% for the string 'Sample Implementation'), or see the file mttim10.tex.
- %%%
- %%% COMPATIBILITY NOTES: mtmacs.tex changes the catcode of _ (the
- %%% underscore character) from 8 (subscript) to 13 (active). This can
- %%% cause problems if some other macro package tries to play with the _
- %%% character (for example, old versions of the eplain.tex package). A
- %%% fix is given below in section 2.
- %%%
- %%% When using with AmSTeX+AMSPPT.STY load mathtime.tex AFTER the
- %%% \documentstyle{amsppt} command and BEFORE \topmatter.
- %%%
- %%% Neither plain.tex or amstex.tex defines a smallcaps control
- %%% sequence (although AMSPPT.STY defines \smc). So I have made the
- %%% control sequence \CapsAndSmallCaps{...} define \sc to be the font
- %%% \tensmc if is called outside of AMSPPT.STY.
- %%%
- %%% FONT FAMILIES: A comment about font families: There are only
- %%% sixteen font families available to TeX. Here is a summary of the
- %%% families PLAIN uses:
- %%% 0 text roman
- %%% 1 math italic
- %%% 2 math symbols
- %%% 3 math extensions
- %%% 4 text italic
- %%% 5 text bold
- %%% 6 text slant (oblique)
- %%% 7 typewriter (monospaced)
- %%
- %%% AMSTEX has the potential to use 6 more:
- %%% MSAM* math symbols A
- %%% MSBM* math symbols B
- %%% EUFM Euler Fraktur medium
- %%% EUFB Euler Fraktur bold
- %%% EUSM Euler Script medium
- %%% BOLD Bold versions of cmsy/cmmi NB: Uses TWO (2) families!!!!
- %%
- %%% Those marked with a * are used by AMSPPT.STY. So, if AMSPPT.STY is
- %%% called, there are only 6 left. So, at best you have 8 remaining
- %%% and at worst you have 2 remaining. The only families used up by
- %%% mathtime.tex are in the optional macros \NewCalligraphic and the
- %%% \OldNumeralsNewFamily macros. In short, \NewCalligraphic and
- %%% \OldNumeralsNewFamily should be used with care. (But read section
- %%% 3E carefully on ways of using OldNumerals wihtout using up a font
- %%% family.)
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% 1. Preliminary business
- %%
- %% 1A. Ensure that this file is loaded only once.
- %%
- % Load mathtime.tex only once.
- \ifx\mathtimeloaded\undefined
- \let\next\relax
- \let\mathtimeloaded\relax
- \else
- \message{[mathtime.tex already loaded]}%
- \let\next\endinput
- \fi
- \next
- %
- %%
- %% 1B. Save various catcodes.
- %%
- % Save the catcodes of @ and ". (From Michal Jaegermann)
- \edef\recoveratcodezqrz{\catcode`\noexpand\@=\the\catcode`\@}
- \catcode`\@=11
- \edef\recoverquotecodezqrz{\catcode`\noexpand\"=\the\catcode`\"}
- \catcode`\"=12
- %
- %%
- %% 1C. Define a generic load-only-once macro.
- %%
- \def\loadonlyonce#1{%
- \expandafter\ifx\csname #1\endcsname\relax
- \else \message{[#1 already loaded]}\endinput\fi
- \expandafter\let\csname #1\endcsname\empty
- }
- %
- %%
- %% 1D. Make a banner macro.
- %%
- \def\FONTStyle#1{
- \message{This is the #1 style.}
- \message{For use with (PlainTeX/AmsTeX/AmsTeX+amsppt.sty/LamsTeX).}
- \message{--Please report any problems to adam@math.uiuc.edu--}
- }
- %
- %%
- %% 1E. Define some \newif's.
- %%
- \newif\ifAMSTEXloaded
- \newif\ifAMSPPTloaded
- %
- \expandafter\ifx\csname amsppt.sty\endcsname\relax
- \AMSPPTloadedfalse\else\AMSPPTloadedtrue\fi
- %
- \ifx\amstexloaded@\relax\AMSTEXloadedtrue\else\AMSTEXloadedfalse\fi
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% 2. Load mtmacs.tex and reinstate the catcode of @.
- %%
- \input mtmacs
- % Make the catcode of @ a letter again. (The old version of mtmacs.tex
- % would fiddle with the catcode of @.)
- \catcode`\@=11
- %%
- %% NOTE WELL: The catcode of _ (the underscore) is changed from 8
- %% (as it is in PLAIN, LATEX, AMSTEX, etc) to "active" by mtmacs.tex.
- %% This can have dire consequences if some other package needs to use
- %% the _ in its \catcode=8 role. If this is the case, put the lines
- %%
- %% \xdef\recoverunderscore{\catcode`\noexpand\_=\the\catcode`\_}
- %% \catcode`\_=8
- %%
- %% right BEFORE the underscore is used, and then put
- %%
- %% \recoverunderscore
- %%
- %% right after you are done using the underscore.
- %% Fortunately, this circumstance is relatively rare.
- %%
- %%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% 3. Define the various fonts:
- %% 3A. Math fonts
- %% 3B. Text fonts
- %% 3C. AMSfonts
- %% 3D. Other fonts (Calligraphic)
- %% 3E. Other fonts (Old Style Digits)
- %%
- %% The format is slightly different in each case, but the font sizes
- %% are given by the following:
- %%
- %% {10pt sz}{9pt sz}{8pt sz}{7pt sz}{6pt sz}{5pt sz}
- %% #1 #2 #3 #4 #5 #6
- %% text script scriptscript
- %%
- %% In every instance it is important to put something for each font
- %% size even if you do not plan to use that size. For example, in none of
- %% the packages is the nine point used, but put something in anyway.
- %%
- %%%%%%%%%%%%%%%%%%%%%%
- %% 3A. Math fonts
- %% Example of use:
- %%
- %% \mathitalic{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \mathsymbols{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %
- % family 1 (uses MTMI)
- \def\mathitalic#1#2#3#4#5#6{
- \MTMI{#1}{#4}{#6}
- \font\teni=\fontname\textfont\@ne
- \font\seveni=\fontname\scriptfont\@ne
- \font\fivei=\fontname\scriptscriptfont\@ne
- \ifAMSPPTloaded
- % \font\ninei=MTMI at #2 \skewchar\ninei=45
- \font\eighti=MTMI at #3 \skewchar\eighti=45
- \font\sixi=MTMI at #5 \skewchar\sixi=45
- \fi
- }
- %
- % family 2 (uses MTSY)
- \def\mathsymbols#1#2#3#4#5#6{
- \MTSY{#1}{#4}{#6}
- \font\tensy=\fontname\textfont\tw@
- \font\sevensy=\fontname\scriptfont\tw@
- \font\fivesy=\fontname\scriptscriptfont\tw@
- \ifAMSPPTloaded
- % \font\ninesy=MTMI at #2 \skewchar\ninei=48
- \font\eightsy=MTSY at #3 \skewchar\eightsy=48
- \font\sixsy=MTSY at #5 \skewchar\sixsy=48
- \fi
- }
- %
- % family 3 (uses MTEX)
- \def\mathextension#1#2#3#4#5#6{
- \MTEX{#1}
- \font\tenex=\fontname\textfont\thr@@
- \ifAMSPPTloaded
- % \font\nineex=MTEX at #2
- \font\sevenex=MTEX at #4
- \font\eightex=MTEX at #3
- \fi
- }
- %
- %%
- %%%%%%%%%%%%%%%%%%%%%%
- %% 3B. Text fonts
- %% Example of use:
- %%
- %% (The format is similar to the math fonts, except the first
- %% argument must be the base name of the font.)
- %% \Roman{ptmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \Boldface{ptmrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %% Each of these control sequences also defines a macro which defines
- %% the font they call. For example, \Roman{ptmr}..{} defines the macro
- %% \RomanFont to be ptmr. Thus, you can say things like
- %%
- %% \font\bigtext=\RomanFont at 20pt
- %%
- %% So, you can more easily change from one font style to another
- %% since \bigtext will not be a specific font but rather a large
- %% version of whatever the Roman font is. The macros so defined are:
- %%
- %% \RomanFont
- %% \ItalicFont
- %% \SlantFont
- %% \BoldfaceFont
- %% \TypewriterFont
- %% \CapsAndSmallCapsFont
- %%
- %% The font defining macros are all implemented ad-hoc because of the
- %% ad-hoc nature in which font families use fonts in the various macro
- %% packages. The following table spells this out.
- %%
- %% PLAIN
- %% fam text script scriptscript
- %% 3 10 10 10
- %% 4 10 undef undef
- %% 5 10 undef undef
- %% 6 10 7 5
- %% 7 10 undef undef
- %%
- %% AMSTEX
- %% fam text script scriptscript
- %% 3 10 10 10
- %% 4 10 10 10
- %% 5 10 10 10
- %% 6 10 7 5
- %% 7 10 undef undef
- %%
- %% AMSTEX+AMSPPT.STY
- %% fam text script scriptscript
- %% 3 10 7 7
- %% 4 10 7 7
- %% 5 10 10 10
- %% 6 10 7 5
- %% 7 10 undef undef
- %%
- %% LAMSTEX (same as AMSTEX)
- %% fam text script scriptscript
- %% 4 10 10 10
- %% 5 10 10 10
- %% 6 10 7 5
- %% 7 10 undef undef
- %%
- %
- % family 0
- \def\Roman#1#2#3#4#5#6#7{
- \font\tenrm=#1 at #2
- \font\sevenrm=#1 at #5
- \font\fiverm=#1 at #7
- \textfont0=\tenrm \scriptfont0=\sevenrm
- \scriptscriptfont0=\fiverm
- \ifAMSPPTloaded
- % \font\ninerm=#1 at #3
- \font\eightrm=#1 at #4
- \font\sixrm=#1 at #6
- \fi
- \edef\RomanFont{#1 }%
- }
- %
- % family 4
- \def\Italic#1#2#3#4#5#6#7{
- \font\tenit=#1 at #2
- \textfont4=\tenit
- \ifAMSPPTloaded
- \font\sevenit=#1 at #5
- \scriptfont4=\sevenit
- \scriptscriptfont4=\sevenit
- % \font\nineit=#1 at #3
- \font\eightit=#1 at #4
- \else
- \ifAMSTEXloaded
- \scriptfont4=\tenit
- \scriptscriptfont4=\tenit
- \fi
- \fi
- \edef\ItalicFont{#1 }%
- }
- %
- % family 5
- \def\Slant#1#2#3#4#5#6#7{
- \font\tensl=#1 at #2
- \textfont5=\tensl
- \ifAMSTEXloaded
- \scriptfont5=\tensl
- \scriptscriptfont5=\tensl
- \fi
- \ifAMSPPTloaded
- % \font\ninesl=#1 at #3
- \font\eightsl=#1 at #4
- \fi
- \edef\SlantFont{#1 }%
- }
- %
- % family 6
- \def\Boldface#1#2#3#4#5#6#7{
- \font\tenbf=#1 at #2
- \font\sevenbf=#1 at #5
- \font\fivebf=#1 at #7
- \textfont6=\tenbf \scriptfont\bffam=\sevenbf
- \scriptscriptfont\bffam=\fivebf
- \ifAMSPPTloaded
- % \font\ninebf=#1 at #3
- \font\eightbf=#1 at #4
- \font\sixbf=#1 at #6
- \fi
- \edef\BoldfaceFont{#1 }%
- }
- %
- % family 7
- \def\Typewriter#1#2#3#4#5#6#7{
- \font\tentt=#1 at #2
- \textfont7=\tentt
- \ifAMSPPTloaded
- % \font\ninett=#1 at #3
- \font\eighttt=#1 at #4
- \fi
- \edef\TypewriterFont{#1 }%
- }
- %
- % (no family)
- \def\CapsAndSmallCaps#1#2#3#4#5#6#7{
- \font\tensmc=#1 at #2
- %\font\ninesmc=#1 at #3
- \font\eightsmc=#1 at #4
- % If NOT in amsppt.sty define \sc
- \ifAMSPPTloaded\else \def\sc{\tensmc}\fi
- \edef\CapsAndSmallCapsFont{#1 }%
- }
- %
- %%%%%%%%%%%%%%%%%%%%%%
- %% 3C. AMSfonts
- %% Example of use:
- %% \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %% NOTE: Works with AmsTeX version 2.1 or later.
- %%
- %% I first define a generic AMSfont loading mechanism.
- %% \AMSFontFamily{msa}{msam}{\msafam}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% #1 msa = \font name prefix
- %% #2 msam = file name prefix
- %% #3 \msafam = family number
- %% #4 10pt = textfont
- %% #5 9pt = (for later use)
- %% #6 8pt = \eightpoint textfont
- %% #7 7pt = scriptfont
- %% #8 6pt = \eightpoint textfont
- %% #9 5pt = scriptscriptfont
- %%
- %
- %% Those who use the Blue Sky PostScript AMS fonts take note.
- %% The msam and msbm fonts in the PS versions come in 10, 7 and 5
- %% point sizes. If AMSPPT.STY is used we also need 8 and 6 point
- %% sizes. If you have use the PS versions of the AMS fonts you should
- %% have the lines:
- %% \def\PSAMSFonts{TT}% Blue Sky PS AMS fonts: True
- %% %%\def\PSAMSFonts{TF}% Blue Sky PS AMS fonts: False
- %% in your AMSPPT.STY file. If you don't, do so NOW! Otherwise, the
- %% mathtime.tex macros will not work correctly.
- %
- \def\ef@#1{\expandafter\font\csname #1\endcsname}
- \def\DefineAMSFontFamily#1#2#3#4#5#6#7#8#9{%
- \ef@{ten#1}=#210 at #4
- \ef@{seven#1}=#27 at #7
- \ef@{five#1}=#25 at #9
- \textfont#3=\csname ten#1\endcsname
- \scriptfont#3=\csname seven#1\endcsname
- \scriptscriptfont#3=\csname five#1\endcsname
- \ifAMSPPTloaded
- \if\PSAMSFonts
- % \ef@{nine#1}=#210 at #5
- \ef@{eight#1}=#27 at #6
- \ef@{six#1}=#25 at #8
- \else
- % \ef@{nine#1}=#29 at #5
- \ef@{eight#1}=#28 at #6
- \ef@{six#1}=#26 at #8
- \fi
- \fi
- }
- %
- \def\AMSFonts#1#2#3#4#5#6{
- \ifAMSTEXloaded
- \ifx\loadmsam\empty
- \DefineAMSFontFamily{msa}{msam}{\msafam}{#1}{#2}{#3}{#4}{#5}{#6}
- \fi
- \ifx\loadmsbm\empty
- \DefineAMSFontFamily{msb}{msbm}{\msbfam}{#1}{#2}{#3}{#4}{#5}{#6}
- \fi
- \ifx\loadeufm\empty
- \DefineAMSFontFamily{eufm}{eufm}{\eufmfam}{#1}{#2}{#3}{#4}{#5}{#6}
- \fi
- \ifx\loadeufb\empty
- \DefineAMSFontFamily{eufb}{eufb}{\eufbfam}{#1}{#2}{#3}{#4}{#5}{#6}
- \fi
- \ifx\loadeusm\empty
- \DefineAMSFontFamily{eusm}{eusm}{\eusmfam}{#1}{#2}{#3}{#4}{#5}{#6}
- \fi
- \ifx\loadbold\empty
- \DefineAMSFontFamily{cmmib}{cmmib}{\cmmibfam}{#1}{#2}{#3}{#4}{#5}{#6}
- \fi
- \else\relax
- \fi
- \ifAMSPPTloaded
- \else
- \def\loadextrasizes@##1##2##3##4##5##6##7{%
- \ifx\undefined##1%
- \else
- \addto\tenpoint{\textfont##1##3\scriptfont##1##5%
- \scriptscriptfont##1##7}%
- \addto\eightpoint{\textfont##1##4\scriptfont##1##6%
- \scriptscriptfont##1##7}%
- \fi
- }%
- \fi
- }
- %%%%%%%%%%%%%%%%%%%%%%
- %% 3D. Other fonts (Calligraphic) [Uses a \newfam!]
- %% Example of use:
- %% \NewCalligraphic{cmsy10}{cmsy9}{cmsy8}{cmsy7}{cmsy6}{cmsy5}
- %%
- %% IMPORTANT: If you do NOT use \NewCalligraphic, then \cal (or
- %% \Cal in AMSTEX) will NOT work!
- %%
- %% NOTE: Different format than before. The skewchar of '60 is
- %% from cmsy. Change this if necessary. Note also that
- %% mtmacs.tex fixes \cal and \Cal, so we don't have to.
- %%
- %% Usually, the calligraphic characters come from font family 2
- %% (which are the math symbols). However, the MathTime fonts do
- %% not work this way. Instead, they assume you are using a
- %% different font which contains the script fonts.
- %% Since family 2 is already used up, the mtmacs.tex macros
- %% allocate a new family called \Calfam. Since there are only
- %% 16 font families available, use this with care.
- %%
- %
- \def\NewCalligraphic#1#2#3#4#5#6{
- \Calligraphic{#1}{#4}{#6}% Allocates a new font family!!
- \font\tencal=\fontname\textfont\Calfam
- \font\sevencal=\fontname\scriptfont\Calfam
- \font\fivecal=\fontname\scriptscriptfont\Calfam
- \ifAMSPPTloaded
- % \font\ninecal=#2 \skewchar\ninecal='60
- \font\eightcal=#3 \skewchar\eightcal='60
- \font\sixcal=#5 \skewchar\sixcal='60
- \addto\eightpoint{\textfont\Calfam=\eightcal
- \scriptfont\Calfam=\sixcal\scriptscriptfont\Calfam=\fivecal}
- \fi
- }
- %%%%%%%%%%%%%%%%%%%%%%
- %% 3E. Other fonts (Old Style Digits)
- %% Example of use:
- %% \OldNumeralsOldFamily{1}
- %% or
- %% \OldNumeralsNewFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %% % This one uses a \newfam
- %%
- %% If you are using AMSTEX (or an extension of AMSTEX) you can use the
- %% following:
- %%
- %% \OldNumeralsTempFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %% The \OldNumerals macro assumes that the digits are in the normal
- %% place where numbers are found in a standard TeX font. If this is
- %% not the case, some VF hacking will be necessary.
- %%
- %% Note that not every set of fonts will have oldstyle digits. If one
- %% of the above three macros is not called, then mathtime.tex cannot
- %% be responsible for what happens when \oldstyle is called.
- %%
- %% In PLAIN and AMSTEX the old style digits are accessed by calling
- %% the math-italic family. Of course, the math-italic family is no
- %% longer appropriate, so we must do something else. It seems silly to
- %% use up a whole font family for only 10 characters, so a way around
- %% it is called for. There are 3 options (in decreasing order of
- %% desirability):
- %%
- %% 1. [FIRST CHOICE] If the oldstyle numerals are contained in a
- %% font with a font family already assigned (for example, in
- %% Computer Modern the oldstyle numerals are in family 1), then
- %% use the command \OldNumeralsOldFamily{n} where "n" is the
- %% family number. For example, in the context of Computer
- %% Modern you should use the command \OldNumeralsFamily{1}.
- %%
- %% Example of use:
- %%
- %% \OldNumeralsOldFamily{1}.
- %%
- %% 2. [SECOND CHOICE; can only be used with
- %% AMSTEX/AMSTEX+AMSPPT.STY/LAMSTEX!]
- %% We "fake" a family, that is we temporarily use family 15
- %% for the oldnos. This is slow, but it avoids the use
- %% of a \newfam.
- %%
- %% Example of use:
- %%
- %% \OldNumeralsTempFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %% 3. [THIRD CHOICE] You can use up a whole font family (the
- %% easiest and perhaps most efficient method). To do this, use
- %% the command \OldNumeralsNewFamily. This is the least
- %% desirable command as it uses up one of the precious 16 font
- %% families, but if you have plenty to spare you might as well
- %% use it.
- %%
- %% Example of use:
- %%
- %% \OldNumeralsNewFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %% (or synonomously)
- %%
- %% \OldNumerals{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %%
- %% Note also that mtmacs.tex undefines \oldnos (although for some
- %% strange reason \oldstyle is not touched).
- %%
- %% PLAIN: ${\oldstyle 1234}$ (only in math mode)
- %% AMSTEX: \oldnos{1234} (text AND math mode)
- %%
- %
- %%%% FIRST CHOICE
- \def\DEFoldnos{%
- \def\oldnos##1{\RIfM@{\mathcode`\,="013B \fam\oldnumfam##1}\else
- \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\oldnumfam##1$}\fi}
- }% a hack to get around \if.. \fi silliness.
- %
- \def\OldNumeralsOldFamily#1{% Use an existing family.
- \edef\oldnumfam{#1}
- \ifAMSTEXloaded
- \DEFoldnos\let\DEFoldnos\undefined
- \else
- \def\oldstyle{\fam\oldnumfam \tenoldnum}
- \fi
- }
- %%%% SECOND CHOICE
- \def\DEFtempoldnos{%
- \def\oldnos##1{\RIfM@{\mathcode`\,="013B \MToldnos@{##1}}\else
- \leavevmode\hbox{$\m@th\mathcode`\,="013B \MToldnos@{##1}$}\fi}
- }
- %
- \def\tempoldnumfam@{15}% Use this family as the temporary family.
- \def\MToldnos@#1{% \MToldnos@ MUST be used in math mode.
- \ifmmode
- \bgroup
- \textfont15=\tenoldnum \scriptfont15=\sevenoldnum
- \scriptscriptfont15=\fiveoldnum
- \text{\tempoldnumfam@ #1}%
- \egroup
- \else
- \relax
- \errmessage{MathTime error: Use \string\oldstyle\ in math mode only.}%
- \fi
- }%
- %
- \newlinechar=`\^^J
- \def\OldNumeralsTempFamily#1#2#3#4#5#6#7{%
- \ifAMSTEXloaded
- \font\tenoldnum=#1 at #2
- \font\sevenoldnum=#1 at #5
- \font\fiveoldnum=#1 at #7
- \def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it%
- \textdef@#1\tempoldnum}
- \DEFtempoldnos\let\DEFtempoldnos\undefined
- \else
- \message{Warning: cannot use \string\OldNumeralsTempFamily\space%
- outside AMSTEX.^^J
- I am using \string\OldNumeralsNewFamily\space instead.}%
- \OldNumerals{#1}{#2}{#3}{#4}{#5}{#6}{#7}%
- \fi
- }%
- %%%% THIRD CHOICE
- \edef\innernewfam{\expandafter\noexpand\csname newfam\endcsname}
- \def\OldNumerals#1#2#3#4#5#6#7{%
- \ifx\oldnumfam\undefined
- \innernewfam\oldnumfam % Define a \newfam only if \oldnumfam is
- \fi % not yet defined.
- \font\tenoldnum=#1 at #2
- \font\sevenoldnum=#1 at #5
- \font\fiveoldnum=#1 at #7
- \textfont\oldnumfam=\tenoldnum \scriptfont\oldnumfam=\sevenoldnum
- \scriptscriptfont\oldnumfam=\fiveoldnum
- \ifAMSTEXloaded
- \DEFoldnos\let\DEFoldnos\undefined
- \else
- \def\oldstyle{\fam\oldnumfam \tenoldnum}
- \fi
- }
- \let\OldNumeralsNewFamily\OldNumerals
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% 4. The logos (taken from texnames.sty v1.08 by Nelson Beebe)
- %%
- %% Normally, the logo for AMSTEX uses family 2 fonts in its definition,
- %% which of course will give garbage in the context of the MathTime
- %% fonts. In texnames.sty the AMSTEX logo uses \cal: in this case if
- %% \NewCalligraphic has been called with fonts other than the cmsy
- %% fonts, the logo will look odd. In other words, the only way to get
- %% the \AmSTeX logo to look the way it is supposed to look is to use
- %% \NewCalligraphic with the cmsy fonts.
- %%
- %% So I have decided that mathtime.tex will make `fake' logos which do
- %% not use family 2 or \cal. If you want the real logos, you must call
- %% the \MakeLogos macro. If \NewCalligraphic has been called the
- %% \MakeLogos macro will use as definition for the logos the
- %% definitions from texnames.sty. If \NewCalligraphic has _not_ been
- %% called, then the logo macros remain faked. In the former case, if
- %% fonts other than the cmsy fonts are used in \NewCalligraphic, the
- %% logos may look wrong.
- %%
- % Define "fake" logos:
- %
- \ifAMSTEXloaded\def\AmSTeX{AMS\TeX}\fi% Fake it
- %
- \ifx\laxread@\undefined
- \else
- \ifx\LamSTeX\undefined% Normally defined in paper.st
- \else
- \def\LamSTeX{LAMS\TeX}% Fake it.
- \fi
- \fi
- %
- \def\MakeLogos{% Definitions taken from texnames.sty, ver. 1.08
- \ifx\Calfam\undefined
- \else
- \ifAMSTEXloaded
- \def\AmSTeX{$\Cal A$\kern-.1667em\lower.5ex\hbox{$\Cal M$}%
- \kern-.125em$\Cal S$-\TeX}% Will look funny if cmsy fonts
- % not used in \NewCalligraphic.
- \fi
- \ifx\laxread@\undefined
- \else
- \ifx\LamSTeX\undefined
- \else
- \def\LamSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont\Calfam A}%
- \kern-.2em\lower.376ex\hbox{\the\textfont\Calfam M}%
- \kern-.125em {\the\textfont\Calfam S}-\TeX}%
- \fi
- \fi
- \fi
- }%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% 5. Accents and other Postscript incompatibilities.
- \ifAMSTEXloaded
- \def\D#1{{\accent"C7 #1}} % Change the dot accent for postscript
- % fonts.
- \makeacc@\dot{0C7} % AMSTEX math accent definition.
- \else
- \def\dot{\mathaccent"70C7 }% PLAIN math accent definition.
- \def\.#1{{\accent"C7 #1}}
- \fi
- \def\H#1{{\accent"CD #1}} % Fix Hungarian umlaut for PostScript
- % fonts.
- %% In the context of Computer Modern fonts, to get a pounds sterling
- %% symbol (it looks like a script L with a horizontal line through it)
- %% one types {\it\$}. But this does not work with PostScript fonts as
- %% the pounds sterling symbol appears in all fonts in position "A3. So
- %% I define a macro \psterling to be character ^^a3. Of course, this
- %% is not strictly compatabible with PLAIN, but there really is no easy way
- %% around it. Note also that this requires TeX 3.0.
- %
- \def\psterling{^^a3} % Define the pounds sterling macro. Should
- % work in all Postscript fonts.
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% 6. Finish up
- % Recover catcodes of @ and "
- \recoverquotecodezqrz\let\recoverquotecodezqrz=\undefined
- \recoveratcodezqrz\let\recoveratcodezqrz=\undefined
- %
- \endinput
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- CHANGE LOG
-
- Version 1.08a: (19 June 1993)
-
- ---Put in extra comments.
- ---Fixed TeXplorator's address.
-
- Version 1.09: (26 June 1993)
-
- ---Made font defintions more compatible with ambient package.
- ---Fixed eightpoint fonts in AMSPPT.STY.
- ---Rewrote AMSFonts routines. Note change in \AMSFonts format.
-
- Version 1.09a: (29 June 1993)
-
- ---Defined \newif's only once, even if mathtime.tex is loaded multiple
- times.
-
- Version 1.10: (1 July 1993)
-
- ---Defined the \MakeLogos macro and fake logos.
-
- Version 1.11: (4 July 1993)
-
- ---Made slight change in \DefineAMSFontFamily.
-
- Version 1.20: (5 September 1993)
-
- ---Simplified \newif stuff. (Why doesn't anyone tell me these things?)
- ---Added \OldNumerals.
- ---Changed (slightly) the way the fake logos look.
-
- Version 1.21: (8 September 1993)
-
- ---Added \RomanFont, \ItalicFont et al.
- ---Fixed TeXplorator's address (AGAIN).
-
- Version 1.22: (21 September 1993)
-
- ---Made \DefineAMSFontFamily work with Blue Sky's PS AMS fonts.
-
- Version 1.23: (25 September 1993)
-
- ---Defined \psterling for pounds sterling.
-
- Version 1.30: (7 April 1994)
-
- ---Change \xdef's to \edef's in catcode saving macros.
- ---Define new macros for OldNumerals to avoid using a \newfam.
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% Sample Implementation
- %%
- %% This style is intended as a drop-in replacement of the font
- %% definitions made by PLAIN.TEX. It is compatible with PLAIN, AMSTEX,
- %% AMSTEX+AMSPPT.STY and LAMSTEX. Thus, if you stick this file at the
- %% top of a PLAIN or AMSTEX or LAMSTEX file, and make the
- %% appropriate macro calls as illustrated below, you will get the
- %% MathTime fonts for math mode and whatever text fonts you
- %% specify. This package can be put in a group to restrict its
- %% effects.
- %%
- %% NOTA BENE: 1. If you use AMSPPT.STY, make sure to \input this file AFTER
- %% the \documentstyle{amsspt} statement, but BEFORE the \topmatter
- %% statement. 2. Use \psterling to get the pounds sterling symbol in
- %% ALL fonts.
- %%
- %% Here is an example where we define a PostScript Times-Roman style:
- %
- % \input mathtime
- % \loadonlyonce{mttim10.tex} %[optional]
- %
- %% The next line is the font-style file's name.
- %
- % \FONTStyle{PS Times Roman/MathTime [10 point]} %[optional]
- %
- %% Next decide on the point sizes for the math italic (MTMI), math
- %% symbols (MTSY), and the math extensions (MTEX).
- %
- % \mathitalic{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \mathsymbols{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- %
- %% Now decide on the text faces. In the example below, I have decided
- %% to use ptmr at 10-9-8-7-6-5 point for
- %% text-ninepoint-eightpoint-script-sixpoint-scriptscript
- %% respectively. You also need a boldface, italic, slant and
- %% typewriter face.
- %% NOTE: If you are not using amsppt.sty, the eight-point and six-point
- %% sizes will be ignored, BUT PUT THEM IN ANYWAY!
- %
- % \Roman{ptmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \Boldface{ptmrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt} %[optional]
- %
- %% In case you need to use this file with AMSTEX or LAMSTEX, make sure
- %% to define the AMS fonts.
- %
- % \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt} %[optional]
- %
- %% If you want to use Calligraphic characters (usually those in cmsy),
- %% call the \NewCalligraphic command. Note the different format from
- %% \Roman, \Boldface, etc. Also note that if you do not define
- %% Calligraphic characters, the \cal and \Cal commands will misbehave
- %% badly.
- %%
- % \NewCalligraphic{cmsy10}{cmsy9}{cmsy8}{cmsy7}{cmsy6}{cmsy5}
- % %[optional]
- %
- %% Since I am using the cmsy fonts I should call the \MakeLogos macro.
- %% Of course, I could use \MakeLogos even if I didn't use the cmsy
- %% fonts, but the logos might look funny.
- %
- % \MakeLogos %[optional]
- %
- %% If you have old style digits (a.k.a. non-lining digits) available,
- %% you can define them using \OldNumerals. If we are AMSTEX we should
- %% use \OldNumeralsTempFamily (if we are not in AMSTEX, \OldNumerals
- %% will be chosen automagically).
- %
- % \OldNumeralsTempFamily{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- % %[optional]
- %
- %% The following are commands defined in mtmacs.tex to change which
- %% fonts numbers and math text use. For more information, see the
- %% mtmacs.tex documentation. They are all optional and do not work in
- %% eight-point mode in AMSPPT.STY (maybe I will change that someday).
- %%
- %% The \MathRoman command chooses the font and point sizes for numbers
- %% and punctuation in math mode.
- %
- % \MathRoman{ptmr}{10pt}{7pt}{5pt} %[optional]
- %
- %% The \MathBold command chooses which fonts to use as boldface in
- %% math mode. The analogous result happens with \MathBoldItalic.
- %
- % \MathBold{ptmb}{10pt}{7pt}{5pt} %[optional]
- % \MathBoldItalic{ptmbi}{10pt}{7pt}{5pt} %[optional]
- %
- %% At this point, insert other parameters that should be changed (for
- %% example, \baselineskip), plus other fonts. Here are a few examples:
- %%
- %%
- % \font\bigtext=\RomanFont at 12pt %[up to the user]
- % \font\ssf=phvr at 10pt %[up to the user]
- %%
- %% Finally, it is important to switch to this style with the \rm
- %% command.
- %
- % \rm
- % \endinput
- %%% End-of-TeX-file
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%% Start-of-TeX-file mttim10.tex
- % mttim10.tex - version 1.05 (Last changed 1 July 1993)
- %
- % I use mathtime.tex (version >1.09a) to make a ten-point PS Times-Roman
- % style. I look especially good at \magstephalf. If you use me
- % with amsppt.sty, put me between the \documentstyle statement and the
- % \topmatter statement. Use \psterling for pounds sterling.
- %
- \input mathtime
-
- \loadonlyonce{mttim10.tex}
- \FONTStyle{PS Times-Roman/MathTime}
-
- \mathitalic{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \mathsymbols{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
-
- \Roman{ptmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \Boldface{ptmb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
- \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
-
- \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
-
- \NewCalligraphic{cmsy10}{cmsy9}{cmsy8}{cmsy7}{cmsy6}{cmsy5}%Uses a
- %\newfam!!!
-
- \MakeLogos
-
- \rm
-
- \endinput
- \endinput
- %%% End-of-TeX-file
-
-